package 创建型设计模式.工厂模式.工厂方法模式.demo;

/**
 *
 * 在这个示例中，LoggerFactory 是工厂接口，FileLoggerFactory 和 DatabaseLoggerFactory 是具体的工厂实现，
 * 它们分别创建 FileLogger 和 DatabaseLogger 对象。这样，当需要增加新类型的日志记录器时，只需要添加相应的工厂类和产品类，不需要修改现有代码，符合开闭原则
 * @Author lf
 * @Date 3/26/2024
 */
public class FactoryMethodDemo {
    public static void main(String[] args) {
        LoggerFactory factory;

        // 使用文件日志记录器工厂创建日志记录器
        factory = new FileLoggerFactory();
        Logger fileLogger = factory.createLogger();
        fileLogger.log("This is a message.");

        // 使用数据库日志记录器工厂创建日志记录器
        factory = new DatabaseLoggerFactory();
        Logger dbLogger = factory.createLogger();
        dbLogger.log("This is a message.");
    }
}
